package com.woniuxy.core.util;

import cn.hutool.core.bean.BeanUtil;
import org.springframework.stereotype.Component;

import java.util.ArrayList;
import java.util.List;

/**
 * 对象转换工具类
 */
@Component
public class ObjectCoverUtil {

    /**
     * 转换集合
     * @param obj 待转换对象
     * @param clazz 集合泛型
     * @return 指定泛型的集合
     * @param <T>
     */
    public static <T> List<T> castList(Object obj, Class<T> clazz)
    {
        List<T> result = new ArrayList<T>();
        if(obj instanceof List<?>)
        {
            for (Object o : (List<?>) obj)
            {
                result.add(BeanUtil.toBean(o,clazz));
            }
            return result;
        }
        return null;
    }

    /**
     * 转换对象泛型
     * @param obj 提供的对象
     * @param clazz 需转换的泛型
     * @return 指定泛型的对象
     * @param <T>
     */
    public static <T> T castT(Object obj, Class<T> clazz)
    {
        return BeanUtil.toBean(obj,clazz);
    }
}
